package cn.zyl.demo.common.enums;

/**
 * CypherEnum类说明:常用-加密算法名称枚举
 *
 * @author wsz
 * @version v1.0
 * @date 2020-07-24
 */
public enum CypherNameEnum {
    /** 单项加密：消息摘要算法第五版，128位*/
    MD_5("MD5"),
    /** 单项加密：安全哈希算法，160位*/
    SHA_1("SHA1"),
    /** 单项加密：安全哈希算法，160位*/
    SHA_2("SHA-2"),
    /** 单项加密：安全哈希算法，224位*/
    SHA_224("SHA-224"),
    /** 单项加密：安全哈希算法，256位*/
    SHA_256("SHA-256"),
    /** 单项加密：安全哈希算法，384位*/
    SHA_384("SHA-384"),
    /** 单项加密：安全哈希算法，512位*/
    SHA_512("SHA-512"),
    /** 单项加密：提取数据特征码*/
    CRC_32("CRC-32"),
    /** 单项加密：消息认证算法*/
    CBC_MAC("CBC-MAC"),
    /** 单项加密：散列消息鉴别码，基于密钥的Hash算法的认证协议*/
    HMAC("HMAC"),
    /** 非对称加密（公钥加密）：既能用于加密，又能用于数字签名 */
    Q_RSA("RSA"),
    /** 非对称加密（公钥加密）：只能用于数字签名，不能用于数据加密 */
    Q_DSA("DSA"),
    /** 非对称加密（公钥加密）：用于密钥交换 */
    Q_DH("DH"),
    /** 非对称加密（公钥加密）：椭圆曲线密码编码学 */
    Q_ECC("ECC"),
    /** 非对称加密（公钥加密）：其完全依赖于在有限域上计算离散对数的困难性 */
    Q_EL_GAMAL("ElGamal"),
    /** 对称加密：单一密钥对称加解密算法,数据加密标准，56位密钥 */
    O_DES("DES"),
    /** 对称加密：高级加密标准,替代DES，支持128、192和256比特的密钥长度 */
    O_AES("AES"),
    /** 对称加密：三重DES数据加密算法 */
    O_3_DES("3DES"),
    /** 对称加密：流密码，生成一种称为密钥流的伪随机流 */
    O_RC_4("RC4"),
    /** 对称加密：微小的加密算法，分组长度为64位，密钥长度为128位 */
    O_TEA("TEA"),
    /** 对称加密：国际数据加密算法。分组密码IDEA明文和密文的分组长度为64位，密钥长度为128位 */
    O_IDEA("IDEA"),
    /** 对称加密：算法是一个64位分组及可变密钥长度的分组密码算法，该算法是非专利的 */
    O_BLOW_FISH("BlowFish"),
    ;
    CypherNameEnum(String name){ this.name = name; }
    public String getName() { return name; }
    private final String name;
}
